Iterative, or “turbo,” coders are widely used in many communication systems including various 3G standards such as CDMA2000 and UMTS WCDMA. While turbo coders typically have impressive performance, particularly with regard to bit error rate, they are complex and typically introduce a delay at the decoder.
One conventional turbo decoder uses a full block of data for its computations. This decoder stores all the forward computation results. In 3G WCDMA applications, assuming a maximum block length of approximately 5 kilobits (Kbits) and an 8-state turbo decoder, the random access memory (RAM) required to store the forward results is 5 Kbits*8, or 320 Kbits, plus an additional 145 Kbits of RAM for other functions and/or processes of the turbo decoder. This is not a practical implementation.
Another conventional turbo decoder uses only a portion of the full block of data for its computations. This so-called “sliding window” approach has been found to converge to the performance of the approach using the full block of data as the size of the window gets large. The RAM required to store the forward computations can be reduced to 4 Kbits plus the additional 145 Kbits for other functions and processes. The reduction in the amount of RAM required comes at the expense of performance.
What is needed is an improved system and method for forward and backward recursive computations that do not suffer from as great a performance degradation as the sliding window.